【小ネタ】MacbookProのログインシェルをbashからzshに乗り換えました。
はじめに
以前からzshは使いやすいと聞いていましたが、bashに慣れていた私には関係ないと目を逸らし続けてました。
軽い気持ちで触った結果、補完機能が強力さに惚れ込みましてこれまで付き合ってきたbashとお別れしました。
zsh導入で何をしたか?
今回zshに求めたものはbashで使える機能+αでした。
そこで、手軽に使うためにもzshrcをさっくり作ってみました。
- zshrc作成、変更
- ログインシェルを変更
実際にやった作業
zshrc作成、変更
- bashrcと同様にzshrcを作成します。
% touch .zshrc
- zshrcに調べた設定項目を入れる
# 環境変数 export LANG=ja_JP.UTF-8 # 補完機能有効化 autoload -Uz compinit compinit # 色使用有効化 autoload -Uz colors colors # cd後、自動的にpushdする setopt auto_pushd # 重複したディレクトリを追加しない setopt pushd_ignore_dups HISTFILE=~/.zsh_history HISTSIZE=100000 SAVEHIST=100000 # 日本語ファイル名を表示可能にする setopt print_eight_bit # beepを無効 setopt no_beep # Ctrl+Dでzshを終了しない setopt ignore_eof # '#'以降をコメントとして扱う setopt interactive_comments # プロンプト PROMPT="%{${fg[green]}%}[%n@%m]%{${reset_color}%} %~ %# " # エイリアス alias la='ls -a' alias ll='ls -l' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias grep='grep --color=auto' #同時に起動したzshの間でヒストリを共有する setopt share_history # 同じコマンドをヒストリに残さない setopt hist_ignore_all_dups # スペースから始まるコマンド行はヒストリに残さない setopt hist_ignore_space # ヒストリに保存するときに余分なスペースを削除する setopt hist_reduce_blanks # awscli補完機能有効化 source '/usr/local/bin/aws_zsh_completer.sh' # pyenv export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" # ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える setopt auto_param_slash # ファイル名の展開でディレクトリにマッチした場合 末尾に / を付加 setopt mark_dirs # 補完候補一覧でファイルの種別を識別マーク表示 (訳注:ls -F の記号) setopt list_types # 補完キー連打で順に補完候補を自動で補完 setopt auto_menu # カッコの対応などを自動的に補完 setopt auto_param_keys # 語の途中でもカーソル位置で補完 setopt complete_in_word zstyle ':completion:*' use-cache true zstyle ':completion:*:default' menu select=2 zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
- 設定の確認
% source ~/.zshrc
ログインシェル変更
Macでのログインシェル変更方法は以下のコマンドで出来ます。
% chsh -s /bin/zsh Changing shell for yoshie.kento. Password for yoshie.kento:
最後に
30分で非常に使いやすい環境が出来ました。
awscliの補完機能の指定が少し変わるかなと懸念しましたが、すんなり設定もわかったので時間がかかりませんでした。
bashの時よりも補完ワードが強調されるので見やすくなったかなと思います。
まだzshを使われていない方がいらっしゃったら、ぜひ触ってみて頂くことをおすすめします。
ありがとうございました、bashさん。よろしくお願いします、zsh先生。